diff --git a/system/database/drivers/interbase/interbase_driver.php b/system/database/drivers/interbase/interbase_driver.php
index 20663d8..bc7365e 100644
--- a/system/database/drivers/interbase/interbase_driver.php
+++ b/system/database/drivers/interbase/interbase_driver.php
@@ -104,7 +104,7 @@
 	/**
 	 * Select the database
 	 *
-	 * @return	resource
+	 * @return	bool
 	 */
 	public function db_select()
 	{
@@ -119,7 +119,7 @@
 	 *
 	 * @param	string
 	 * @param	string
-	 * @return	resource
+	 * @return	bool
 	 */
 	public function db_set_charset($charset, $collation)
 	{
@@ -332,6 +332,8 @@
 
 		$query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . ' FROM ' . $this->_protect_identifiers($table, TRUE, NULL, FALSE));
 
+		$query->result_array();
+
 		if ($query->num_rows() == 0)
 		{
 			return 0;
@@ -379,17 +381,10 @@
 	 */
 	public function _list_columns($table = '')
 	{
-		$sql = <<<SQL
+		return <<<SQL
 			SELECT "RDB\$FIELD_NAME" FROM "RDB\$RELATION_FIELDS" 
-			WHERE "RDB\$RELATION_NAME" NOT LIKE 'RDB$%'
-			AND "RDB\$RELATION_NAME" NOT LIKE 'MON$%'
+			WHERE "RDB\$RELATION_NAME"='{$table}';
 SQL;
-		if($table !== '')
-		{
-			$sql .= ' AND "RDB$RELATION_NAME"='.$table;
-		}
-		
-		return $sql;
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/database/drivers/interbase/interbase_forge.php b/system/database/drivers/interbase/interbase_forge.php
index 6301481..d9b55a8 100644
--- a/system/database/drivers/interbase/interbase_forge.php
+++ b/system/database/drivers/interbase/interbase_forge.php
@@ -40,13 +40,14 @@
 	 * Create database
 	 *
 	 * @param	string	the database name
-	 * @return	bool
+	 * @return	string
 	 */
-	public function _create_database()
+	public function _create_database($filename='')
 	{
-		// In Interbase/Firebird, a database is created when you connect to the database.
-		// We'll return TRUE so that an error isn't generated
-		return TRUE;
+		// Firebird databases are flat files, so a path is required 
+		// Hostname is needed for remote access
+		return 'CREATE DATABASE "'.$this->hostname.':'.$filename.'"';
+		
 	}
 
 	// --------------------------------------------------------------------
@@ -72,7 +73,7 @@
 	 * @param	mixed	primary key(s)
 	 * @param	mixed	key(s)
 	 * @param	boolean	should 'IF NOT EXISTS' be added to the SQL
-	 * @return	bool
+	 * @return	string
 	 */
 	public function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists)
 	{
@@ -168,7 +169,7 @@
 	/**
 	 * Drop Table
 	 *
-	 * @return	bool
+	 * @return	string
 	 */
 	public function _drop_table($table)
 	{
@@ -190,7 +191,7 @@
 	 * @param	string	the default value
 	 * @param	boolean	should 'NOT NULL' be added
 	 * @param	string	the field after which we should add the new field
-	 * @return	object
+	 * @return	string
 	 */
 	public function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '')
 	{
@@ -234,8 +235,7 @@
 	 */
 	public function _rename_table($table_name, $new_table_name)
 	{
-		$sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name).' RENAME TO '.$this->db->_protect_identifiers($new_table_name);
-		return $sql;
+		return 'ALTER TABLE '.$this->db->_protect_identifiers($table_name).' RENAME TO '.$this->db->_protect_identifiers($new_table_name);
 	}
 }
 
